草庐IT

Java TCP Socket等待空闲?

全部标签

c# - 等待最后一次时不必要的异步/等待?

我最近一直在处理asyncawait(阅读所有可能的文章,包括Stephen和Jon的最后两章),但我已经得出结论,但我不知道它是否是100%正确。-因此我的问题。因为async只允许出现await这个词,所以我将把async放在一边。AFAIU,等待就是延续。与其编写功能性(连续)代码,不如编写同步代码。(我喜欢将其称为可回调代码)因此,当编译器到达await时-它会将代码拆分为2个部分,并注册第二部分以在第一部分完成后执行(我不知道为什么这个词未使用callback-这正是完成的操作)。(同时工作-线程回来做其他事情)。但是看看这段代码:publicasyncTaskProcess

c# - 异步 CTP - 如何使用异步/等待调用 wcf 服务?

如果我调用WCF服务方法,我将执行如下操作:proxy.DoSomethingAsync();proxy.DoSomethingAsyncCompleted+=OnDoSomethingAsyncCompleted;我如何使用新的async做同样的事情?CTP?我想我需要类似proxy.DoSomethingTaskAsync的东西或proxy.DoSomethingAsync().ToTask()?Web服务调用需要返回Task能够使用await关键字,但如何?? 最佳答案 在CTP中,有一些工厂方法可以将常规APM函数(开始/结

c# - 为什么任务甚至在等待中完成

我在下面的代码中遇到问题:staticvoidMain(string[]args){TasknewTask=Task.Factory.StartNew(MainTask);newTask.ContinueWith((TasksomeTask)=>{Console.WriteLine("MainState="+someTask.Status.ToString()+"IsFaulted="+someTask.IsFaulted+"isComplete="+someTask.IsCompleted);});while(true){}}staticasyncTaskMainTask(){Con

c# - 等待系统删除文件

我在删除文件后刷新文件列表时遇到问题。当我发出删除文件的命令时,异常被抛出,因为刷新方法试图访问一个应该被删除的文件。经过一番思考和调试,我得出的结论是,问题在于系统需要一些时间来删除文件。我这样解决://DeletingfileSystem.Threading.Thread.Sleep(2000);//Refreshinglist而且效果很好。我的问题是有没有更优雅的方法来等待系统删除文件然后继续代码...? 最佳答案 这对我有用:publicstaticvoidDeleteFile(StringfileToDelete){var

c# - 在 C#/Powershell 中 - 是否可以更改 IIS 应用程序池的空闲超时?

我想禁用应用程序池的空闲超时(将其设置为零)并且我想在设置时执行此操作,是否可以从C#或PowerShell执行此操作? 最佳答案 如果您使用的是PowerShell2或更高版本,您应该可以访问Set-ItemProperty.您还需要加载WebAdministration模块。然后你可以做(​​例子取自here)Set-ItemProperty("IIS:\AppPools\$name")-NameprocessModel.idleTimeout-value([TimeSpan]::FromMinutes(0))并验证该值是否已更

c# - 任务链(等待上一个任务完成)

vartasks=newList();foreach(varguidinguids){vartask=newTask(...);tasks.Add(task);}foreach(vartaskintasks){task.Start();Task.WaitAll(task);}这是UI线程的运行。我需要一个接一个地执行任务变量中的所有任务。问题是如果我调用Task.WaitAll(task),UI会卡住。如何在不卡住UI的情况下执行以下逻辑? 最佳答案 这不是任务链。您需要使用ContinueWith进行任务链接。最后一个任务需要更新

c# - 我应该在每个等待的操作上调用 ConfigureAwait(false)

我读了这篇文章https://blog.stephencleary.com/2012/07/dont-block-on-async-code.html-但是我看到了一个矛盾:我知道UI线程死锁的问题,因为UI线程阻塞等待异步操作完成,但相同的异步操作同步到UI线程上下文-因此异步操作无法进入UI线程,因此UI线程不会停止等待。文章告诉我们解决方法是不要在UI线程上阻塞,否则您需要使用ConfigureAwait(false)everywhere:Youwouldhavetouseforeveryawaitinthetransitiveclosureofallmethodscalledb

c# - .NET 空闲内存使用(如何防止过度分配/释放内存给操作系统)

我目前正在开发一个网站,该网站大量使用缓存数据来避免往返。在启动时,我们得到一个“大”图(数百种不同类型的对象)。这些对象通过WCF检索并反序列化(我们使用ProtocolBuffer进行序列化)我正在使用redgate的内存分析器来调试内存问题(内存似乎不适合我们在完成初始化并最终得到这份报告后“需要多少内存”现在我们可以从这份报告中收集到的是:1).NET分配的大部分内存是空闲的(它可能在反序列化期间被正确分配,但现在它是空闲的,我希望它返回操作系统)2)内存碎片化(这很糟糕,因为每次我刷新现金时我都需要重做内存饥饿的反序列化过程,这反过来会创建大对象,由于碎片化可能会抛出OutO

c# - 单击按钮期间是否可以等待异步任务?

我的应用程序中有一个刷新按钮,它使用一些异步方法来更新显示的项目列表。问题是我不能为按钮单击的事件处理程序返回Task类型,所以我只剩下一个asyncvoid方法。因此,用户可以点击刷新按钮,然后在重新填充列表时选择一个项目,这将导致错误。处理按钮点击的代码开始:privateasyncvoidButton_Click_1(objectsender,RoutedEventArgse){awaitViewModel.CreateMessageCommand();那么有什么方法可以正确地等待这个任务完成吗? 最佳答案 由于控件的事件处理

c# - MVC 4 Controller 中的异步和等待

每次我尝试使用新的Async和Await运算符并从数据库返回对象集合时,我都会得到一个InvalidOperation异常(exception)。当我用它只返回一个项目时,它工作正常。Controller代码:publicasyncTaskEnvironmentList(){EfEnvironmentDataAccessdataAccess=newEfEnvironmentDataAccess();ICollectionenvironments=awaitdataAccess.GetAllEnvironmentsAsync();returnPartialView(environment